package cz.muni.fi.pa165.pokemon.dto;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
import java.util.Set;

/**
 *
 * @author Peter Mravec
 */
public class StadiumTO implements Serializable {
    private Long id;
    private BadgeTO badge;
    private String carType;
    private Map<TrainerPosition, TrainerTO> trainers;
    private Set<PokemonTO> pokemons;
    private Date stadiumNewDate;
    private Date stadiumServicedDate;
    private Date stadiumPaidDate;
    private BigDecimal totalPrice;
    
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public BadgeTO getBadge() {
        return badge;
    }

    public void setBadge(BadgeTO badge) {
        this.badge = badge;
    }

    public String getCarType() {
        return carType;
    }

    public void setCarType(String carType) {
        this.carType = carType;
    }

    public Map<TrainerPosition, TrainerTO> getTrainers() {
        return trainers;
    }

    public void setTrainers(Map<TrainerPosition, TrainerTO> trainers) {
        this.trainers = trainers;
    }

    public Set<PokemonTO> getPokemons() {
        return pokemons;
    }

    public void setPokemons(Set<PokemonTO> pokemons) {
        this.pokemons = pokemons;
    }

    public Date getStadiumNewDate() {
        return stadiumNewDate;
    }

    public void setStadiumNewDate(Date stadiumNewDate) {
        this.stadiumNewDate = stadiumNewDate;
    }

    public Date getStadiumServicedDate() {
        return stadiumServicedDate;
    }

    public void setStadiumServicedDate(Date stadiumServicedDate) {
        this.stadiumServicedDate = stadiumServicedDate;
    }

    public Date getStadiumPaidDate() {
        return stadiumPaidDate;
    }

    public void setStadiumPaidDate(Date stadiumPaidDate) {
        this.stadiumPaidDate = stadiumPaidDate;
    }

    public BigDecimal getTotalPrice() {
        return totalPrice;
    }

    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }

    @Override
    public String toString() {
        return "StadiumTO{" + "id=" + id + ", badge=" + badge + ", carType=" + carType + ", trainers=" + trainers + ", pokemons=" + pokemons + ", stadiumNewDate=" + stadiumNewDate + ", stadiumServicedDate=" + stadiumServicedDate + ", stadiumPaidDate=" + stadiumPaidDate + ", totalPrice=" + totalPrice + '}';
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 37 * hash + Objects.hashCode(this.id);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final StadiumTO other = (StadiumTO) obj;
        if (!Objects.equals(this.id, other.id)) {
            return false;
        }
        return true;
    }
}
